home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2007 December / PCWKCD1207B.iso / Blogowanie poza sfera / Flock 0.9.1.3 stable / flock-0.9.1.3.en-US.win32.exe / flock / chrome / browser.jar / content / browser / feeds / addFeedReader.js next >
Text File  |  2006-09-22  |  5KB  |  126 lines

  1. /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2. /* ***** BEGIN LICENSE BLOCK *****
  3.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  4.  *
  5.  * The contents of this file are subject to the Mozilla Public License Version
  6.  * 1.1 (the "License"); you may not use this file except in compliance with
  7.  * the License. You may obtain a copy of the License at
  8.  * http://www.mozilla.org/MPL/
  9.  *
  10.  * Software distributed under the License is distributed on an "AS IS" basis,
  11.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  12.  * for the specific language governing rights and limitations under the
  13.  * License.
  14.  *
  15.  * The Original Code is the Add Feed Reader Dialog.
  16.  *
  17.  * The Initial Developer of the Original Code is Google Inc.
  18.  * Portions created by the Initial Developer are Copyright (C) 2006
  19.  * the Initial Developer. All Rights Reserved.
  20.  *
  21.  * Contributor(s):
  22.  *   Ben Goodger <beng@google.com>
  23.  *   Asaf Romano <mozilla.mano@sent.com>
  24.  *
  25.  * Alternatively, the contents of this file may be used under the terms of
  26.  * either the GNU General Public License Version 2 or later (the "GPL"), or
  27.  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  28.  * in which case the provisions of the GPL or the LGPL are applicable instead
  29.  * of those above. If you wish to allow use of your version of this file only
  30.  * under the terms of either the GPL or the LGPL, and not to allow others to
  31.  * use your version of this file under the terms of the MPL, indicate your
  32.  * decision by deleting the provisions above and replace them with the notice
  33.  * and other provisions required by the GPL or the LGPL. If you do not delete
  34.  * the provisions above, a recipient may use your version of this file under
  35.  * the terms of any one of the MPL, the GPL or the LGPL.
  36.  *
  37.  * ***** END LICENSE BLOCK ***** */
  38.  
  39. const Cc = Components.classes;
  40. const Ci = Components.interfaces;
  41. const Cr = Components.results;
  42.  
  43. function LOG(str) {
  44.   dump("*** " + str + "\n");
  45. }
  46.  
  47. const TYPE_MAYBE_FEED = "application/vnd.mozilla.maybe.feed";
  48. const PREF_SELECTED_WEB = "browser.feeds.handlers.webservice";
  49.  
  50. const TYPETYPE_MIME = 1;
  51. const TYPETYPE_PROTOCOL = 2;
  52.  
  53. //
  54. // window.arguments:
  55. //
  56. // 0          nsIDialogParamBlock containing user decision result
  57. // 1          string uri of the service being registered
  58. // 2          string title of the service being registered
  59. // 3          string type of service being registered for
  60. // 4          integer 1 = content type 2 = protocol
  61.  
  62.  
  63. var gAddFeedReader = {
  64.   _result: null,
  65.   _uri: null,
  66.   _title: null,
  67.   _type: null,
  68.   _typeType: null,
  69.   _handlerInstalled: false,
  70.  
  71.   init: function AFR_init() {
  72.     this._result = window.arguments[0].QueryInterface(Ci.nsIDialogParamBlock);
  73.     this._uri = window.arguments[1].QueryInterface(Ci.nsIURI);
  74.     this._title = window.arguments[2];
  75.     this._type = window.arguments[3];
  76.     this._typeType = window.arguments[4];
  77.   
  78.     var strings = document.getElementById("strings");
  79.     var dlg = document.documentElement;
  80.     var addQuestion = document.getElementById("addQuestion");
  81.  
  82.     var wccr = 
  83.         Cc["@mozilla.org/embeddor.implemented/web-content-handler-registrar;1"].
  84.         getService(Ci.nsIWebContentConverterService);
  85.     var handler = 
  86.         wccr.getWebContentHandlerByURI(this._type, this._uri.spec);
  87.     this._handlerInstalled = handler != null;
  88.  
  89.     var key = this._handlerInstalled ? "handlerRegistered" : "addHandler";
  90.     var message = strings.getFormattedString(key, [this._title]);
  91.     addQuestion.setAttribute("value", message);
  92.     
  93.     if (this._type != TYPE_MAYBE_FEED && this._typeType == TYPETYPE_MIME) {
  94.       var mimeService = 
  95.           Cc["@mozilla.org/uriloader/external-helper-app-service;1"].
  96.           getService(Ci.nsIMIMEService);
  97.       var ext = mimeService.getPrimaryExtension(this._type, null);
  98.       var imageBox = document.getElementById("imageBox");
  99.       imageBox.style.backgroundImage = "url('moz-icon://goat." + ext + "?size=32');";
  100.     }
  101.  
  102.     document.getElementById("site").value = this._uri.host;
  103.     
  104.     if (handler) {
  105.       dlg.getButton("cancel").hidden = true;
  106.       dlg.defaultButton = "accept";
  107.       document.getElementById("siteBox").hidden = true;
  108.     }
  109.     else {
  110.       dlg.getButton("accept").label = strings.getString("addHandlerYes");
  111.       dlg.getButton("cancel").label = strings.getString("addHandlerNo");
  112.     }
  113.  
  114.     window.sizeToContent();
  115.   },
  116.  
  117.   onDialogAccept: function AFR_onDialogAccept() {
  118.     // Used to tell the WCCR that the user chose to add the handler (rather 
  119.     // than canceling).
  120.     const PARAM_SHOULD_ADD_HANDLER = 0;
  121.  
  122.     // We don't need to add an already-installed handler
  123.     this._result.SetInt(PARAM_SHOULD_ADD_HANDLER, !this._handlerInstalled);
  124.   }
  125. };
  126.